Skip to content

34.8 Windows Service 部署

34.8.1 关于 Windows Service

Windows Service 是微软 Windows 操作系统中的一种核心组件,它是一个独立于用户登录状态的后台进程,设计用于提供持续性、系统级的功能或执行预定任务。

Windows Service 是一个长时间运行的应用程序,可以在系统启动时自动启动,并在没有用户登录的情况下持续运行。它们不会显示用户界面(UI),而是通过服务控制管理器(Service Control Manager, SCM)与操作系统进行交互。

34.8.2 关于 NSSM

NSSM 是一个 Windows 服务封装程序,它可以将普通 exe 程序或者 .bat 脚本封装成 Windows 服务一样运行。

官网地址:http://nssm.cc/

下载地址:nssm-2.24.zip(免安装)

34.8.3 发布网站

  1. 选择解决方案启动项并右键选择发布

2. 选择发布到文件夹

3. 设置发布后目录

4. 编辑发布配置

5.根据需求选择发布配置,通常默认即可

6. 点击发布

34.8.4 配置服务器 .NET 环境

单文件/独立发布如果选择单文件/独立发布模式,那么可以选择跳过当前小节。

  1. 安装.NET Core 运行时捆绑包:点击下载
  2. 打开 PowerShellCMD 执行以下命令
net stop was /y  
net start w3svc  
set ASPNETCORE_ENVIRONMENT=Production  

34.8.5 创建网站服务

34.8.5.1 .exe 方式

推荐使用 .bat 方式.exe 方式配置 dotnet 参数不够灵活(如配置启动端口),推荐使用 【34.8.5.2 - .bat 方式】,该方式可以利用 dotnet 命令进行自由配置。

PowerShell 方式使用 CMD 终端只需输入 nssm 即可,若使用 PowerShell 则需要通过 ./nssm.exe 方式。

  1. 打开 NSSM 下载目录并进入 win64 目录,在当前目录打开 PowerShellCMD,通过 nssm 创建服务:
nssm install MyProject  

MyProject 表示你网站或者要创建的服务名称,该服务名称将显示在 Windows Service 服务列表中。

2. 启动网站服务

nssm start MyProject  

3. 打开 http://localhost:5000 访问

默认情况下,打开 .exe 文件初始端口为 5000

34.8.5.2 .bat 方式(推荐)

.bat 方式支持通过 dotnet 命令启动网站,而且支持配置更多参数。

  1. 在发布后的网站目录下创建 MyProject.txt 文件并写入以下内容
pushd "C:\Workspace\TestPublish"  
dotnet Furion.Web.Entry.dll --urls=http://0.0.0.0:8089  
pause  

  • pushd "C:\Workspace\TestPublish" 为发布文件的目录
  • dotnet Furion.Web.Entry.dll --urls=http://0.0.0.0:8089dotnet 启动命令,如可以指定端口

  • 修改 MyProject.txt 后缀名为 MyProject.bat

  • 打开 NSSM 下载目录并进入 win64 目录,在当前目录打开 PowerShellCMD,通过 nssm 创建服务:
nssm install MyProject  

MyProject 表示你网站或者要创建的服务名称,该服务名称将显示在 Windows Service 服务列表中。

4. 启动网站服务

nssm start MyProject  

5. 打开 http://localhost:8089 访问

34.8.6 删除服务

要删除服务先停止服务后再删除:

nssm stop MyProject  
nssm remove MyProject  

34.8.7 NSSM 常见命令

  • 安装服务:nssm install 服务名
  • 删除服务:nssm remove 服务名
  • 删除服务确定:nssm remove 服务名 confirm
  • 修改服务(显示界面修改):nssm edit 服务名
  • 启动服务:nssm start 服务名
  • 停止服务:nssm stop 服务名
  • 重启服务:nssm restart 服务名

更多命令请参考官网说明:https://nssm.cc/commands

34.8.8 打开 Windows Service 管理

打开 运行(Win + r)输入 services.msc 并回车。

34.8.9 反馈与建议

与我们交流给 Furion 提 Issue